package mvc.model;

public class JogoDaForca {
	private Alfabeto alfabeto = new Alfabeto();
	private PalavrasCollection palavras = new PalavrasCollection();
	private static Palavra palavraDaVez;
	private static Character letraDaVez;
	private static int chances = 6;
	
	public Character getLetraDaVez() {
		return letraDaVez;
	}

	public int getChances() {
		return chances;
	}


	public void novaPalavra() {
		palavraDaVez = palavras.getRandom();
	}

	public String getPalavraDaVez() {
		return palavraDaVez.getPalavra(palavraDaVez);
	}
	
	public Boolean validacao(char caractere){
		boolean retorno = false;
		 if (!alfabeto.validaLetraAlfabeto(caractere)){
			 retorno = true;
		 } else if (!alfabeto.validaFlagAlfabeto(caractere)){
			 retorno = true;
		 }
		 if (retorno == false)
			 letraDaVez = Character.toUpperCase(caractere);
		 return retorno;
	}
	
	public boolean realizarJogada(){
		if (palavraDaVez.procuraLetraNaPalavra(letraDaVez, palavraDaVez)){
			return true;
		} else {
			chances--;
			return false;
		}
	}
	
	public String getAlfabeto(){
		return alfabeto.getAlfabeto();
	}
	
	public boolean fimDeJogo(){
		setAcertosPorJogada(0);
		if ((chances < 1) || (palavraDaVez.getFechouPalavra())){
			return false;
		} else return true;
	}
	
	public boolean resultado(){
		if (palavraDaVez.getFechouPalavra()){
			return true;
		}
		return false;
	}
	public int getAcertosPorJogada() {
		return palavraDaVez.getAcertosPorJogada();
	}

	public void setAcertosPorJogada(int acertosPorJogada) {
		palavraDaVez.setAcertosPorJogada(acertosPorJogada);
	}
	
	public String getPal(){
		return palavraDaVez.getPal(palavraDaVez);
	}

}
